#include<stdio.h>

// 一只猴子，第一天采n个桃子  ，以后的每天吃剩下的桃子的一半多1个。第十天还剩1个桃子，求第一天采了多少个桃子？


//递归 ： 在函数里调用本身
//所有能用递归实现的代码都可以用循环来写
int MonkeyPeach(int day)
{
    if(day == 10) //递归的中止条件
        return 1;
    return (MonkeyPeach(day+1)+1)*2;
}


//求n！

int JieCheng(int n)
{
    if(n==1)
    return 1;
        return JieCheng(n-1)*n;  //递归体
}


//递归求字符串长度
int MyStrlen(const char *s)
{

    if(*s =='\0')
        return 0;
    return MyStrlen(s+1)+1;
}

//青蛙跳台阶  一次只能跳1/2级台阶    跳n级台阶有多少种方法？
long JumpStep(int n)
{
    if(n == 1)
        return 1;
    if(n == 2)
        return 2;
    return JumpStep(n-1)+JumpStep(n-2);
}


int main()
{
    
    printf("%ld\n",JumpStep(50));
    return 0;
}
